home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 22 / PC Actual CD 22.iso / linux / xfree86 / DOC / README.tseng < prev    next >
Encoding:
Text File  |  1998-01-07  |  36.5 KB  |  1,057 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.               Information for Tseng Chipset Users
  11.  
  12.      The XFree86 Project, Inc.    Dirk H. Hohndel, Koen Gadeyne and others.
  13.  
  14.                   16 May 1997
  15.  
  16.  
  17.  
  18. 1.  Supported chipsets
  19.  
  20. The Tseng chipsets supported by XFree86 are ET3000, ET4000, ET4000/W32 and
  21. ET6000. Accelerated features of the ET4000/W32p and ET6000 are supported by the
  22. SVGA driver. For details about the separate accelerated 8bpp (=256 color)
  23. ET4000/W32 and ET6000 server, refer to README.W32.
  24.  
  25. Things that are known NOT to work with the SVGA server in this version (XFree86
  26. 3.3) are some ET4000W32 ISA cards (they hang the machine... Use the W32 server
  27. XF86_W32 for these cards!), and acceleration on ET4000W32i cards.
  28.  
  29. In the rest of this document, "8bpp" is short for "8 bits per pixel", which
  30. means a 256-color mode. Similarly, 15bpp refers to 32768 colors, 16bpp to 65536
  31. colors , 24bpp to a "packed" 16 million color mode, and 32bpp to a "sparse" 16
  32. million color mode (at 32bpp, only 24 of the 32 bits are actually used, hence
  33. the "sparse").
  34.  
  35. 15bpp is only used here to differentiate it from 16bpp, but they are both nor-
  36. mally referred to as 16bpp. 15bpp is actually 16bpp with a 5-5-5 color weight
  37. (wasting one bit per pixel), while 16bpp is, well, 16bpp, with 5-6-5 color
  38. weight.
  39.  
  40.  
  41. 2.  ET4000 driver features
  42.  
  43. The SVGA driver for ET4000 chipsets supports all color depths (8, 15, 16, 24
  44. and 24 bpp) on most ET4000 chips starting with the ET4000W32i. The ET4000W32
  45. only supports 8bpp. Depending on the RAMDAC and the support code in the SVGA
  46. server, some cards may only support a few of these color depths, or even only
  47. 8bpp.
  48.  
  49. On W32p chips all color depths are supported on the supported RAMDACs (cur-
  50. rently ICS5341, STG170x and Chrontel CH8398). These modes are also accelerated.
  51. On W32i chips, only AT&T49x compatible RAMDACs will support 16 and 24 bpp
  52. modes, and there is no acceleration support (yet).
  53.  
  54. W32p revision a and b chips are limited to 1 MB of video memory in linear mem-
  55. ory modes with acceleration (i.e. in 16/24/32 bpp modes). This is a hardware
  56. limitation.
  57.  
  58. Cards with a RAMDAC that is not yet supported will be limited in a similar man-
  59. ner as the older cards, i.e. to a maximum pixel clock of 86 MHz, whilst they
  60. actually might be able to go up to 135 MHz. As a result, 1280x1024 modes will
  61. only be possible when using interlacing, and non-interlaced modes are limited
  62.  
  63.  
  64.  Information for Tseng Chipset Users
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  Information for Tseng Chipset Users
  71.  
  72.  
  73.  
  74. to about 1024x768 at 75 Hz refresh.
  75.  
  76. For a non-interlaced 1280x1024x(256 colors) at say 135-MHz, you need a w32p
  77. (with its 16-bit RAMDAC bus) with a multiplexing RAMDAC so that the w32p sees
  78. only (135/2 = 67.5) MHz, not 135 MHz. This requires special code only provided
  79. for cards using the ICS5341 GENDAC or the STG170x. This code seems to work fine
  80. for most people, except, with the ICS5341, for a small band of frequencies
  81. around 90MHz.
  82.  
  83. Linear memory mode (especially important for some DGA clients, and required for
  84. 16/24/32 bpp modes) is supported on all ET4000W32i and ET4000W32p cards, but
  85. not on the ET4000W32. On ET4000W32p revision a and b, linear memory is limited
  86. to 1 MB.
  87.  
  88. For the higher color depths (16, 24 and 32 bpp), linear memory mode is
  89. REQUIRED. It is enabled by default in these modes. There is no need to specify
  90. that in the XF86Config file. Please read the section on linear memory below: it
  91. contains some vital information on how to avoid serious problems.
  92.  
  93. To force linear memory mode at 8bpp modes, put the following in the Device sec-
  94. tion of your XF86Config:
  95.  
  96.        Option "linear"
  97.  
  98. Acceleration support is present, and enabled by default, for W32p chips (not
  99. yet for W32i, but that's being worked on). This is based on the new XFree86
  100. acceleration interface (XAA). See also README.W32.
  101.  
  102. If you have problems with acceleration, acceleration can be disabled by putting
  103. the following in the Device section of your XF86Config:
  104.  
  105.        Option "noaccel"
  106.  
  107. On some (fast) systems, acceleration may cause occasional font corruption.
  108. Until this problem is fixed, font acceleration may be disabled using the fol-
  109. lowing in the Device section of your XF86Config:
  110.  
  111.        Option "xaa_no_color_exp"
  112.  
  113.  
  114. 3.  ET6000 driver features
  115.  
  116. In addition to the features in the ET4000 driver, the SVGA ET6000 server sup-
  117. ports all possible color depths in the SVGA server: 8bpp, 16bpp (both at 5-5-5
  118. and 5-6-5 color resolutions), 24bpp and 32 bpp.
  119.  
  120. In order to be able to run at a depth of 16bpp, 24bpp, or 32bpp, and to improve
  121. performance at 8bpp, linear addressing must be enabled.
  122.  
  123. Linear memory mode (as opposed to the default, banked memory layout) is sup-
  124. ported. It is required and enabled by default for the 16/24/32 bpp modes.  For
  125. 8bpp, the default is banked mode.
  126.  
  127. To force linear memory at 8bpp, put the following in the SVGA section of your
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  Information for Tseng Chipset Users
  137.  
  138.  
  139.  
  140. XF86Config:
  141.  
  142.        Option "linear"
  143.  
  144. Acceleration is supported and is enabled by default, and accelerates all color
  145. depths on the ET6000. Acceleration can be disabled by adding the following in
  146. the Device section of your XF86Config:
  147.  
  148.        Option "noaccel"
  149.  
  150. The hardware cursor is supported in all color depths. Due to a hardware limita-
  151. tion in the ET6000, only a limited set of colors is supported (2 significant
  152. bits per color component). This may cause some (small) cursor color errors. If
  153. absolute cursor color accuracy is required, the hardware cursor should not be
  154. enabled. However, in most applications, this will not be a problem. The hard-
  155. ware cursor can be enabled using
  156.  
  157.        Option "hw_cursor"
  158.  
  159. There is a problem with the hardware cursor at high dotclocks (above approx.
  160. 110MHz) at which point the cursor does strange things when partly off the left-
  161. hand side of the screen.
  162.  
  163. Doublescan modes currently don't work with the hardware cursor: only the top
  164. half of the cursor is visible. If you want to use DoubleScan modes (320x200 is
  165. a popular one), then do not enable the hardware cursor.
  166.  
  167. On some fast systems, acceleration may cause occasional font corruption. Until
  168. this problem is fixed, font acceleration may be disabled using the following in
  169. the Device section of your XF86Config:
  170.  
  171.        Option "xaa_no_color_exp"
  172.  
  173. When using accelerated high color-depths (24bpp and 32bpp), high-resolution
  174. modes (starting somewhere around 800x600) may cause temporary "garbage" lines
  175. to the right of the screen while the accelerator is busy. The garbage should
  176. not be persistent: it should go away as soon as the server is left alone. This
  177. is a memory bandwidth problem, and thus cannot be resolved (except by not
  178. allowing such modes at all, which is what is done in the current driver).
  179.  
  180. Ignoring it is one option (it isn't destructive). Disabling acceleration in the
  181. Device section of the XF86Config file is another option: since the accelerator
  182. is not being used, there is ample bandwidth to avoid such problems.
  183.  
  184.  
  185. 4.  Clock selection problems with some ET4000 boards
  186.  
  187. XFree86 has some problems getting the clock selection right with some ET4000
  188. boards when the server is started from a high-resolution text mode.  The clock
  189. selection is always correct when the server is started from a standard 80x25
  190. text mode.
  191.  
  192. This problem is indicated when the reported clocks are different when the
  193. server is started from the high-resolution text mode from what they are when it
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  Information for Tseng Chipset Users
  203.  
  204.  
  205.  
  206. is started from the 80x25 text mode.  To allow the server to work correctly
  207. from the high-resolution text mode, there are some Option flags that may be set
  208. in XF86Config.    To find out which flags to set, start the server with the
  209. -probeonly flag from an 80x25 text mode and look at the information printed by
  210. the server.  If the line:
  211.  
  212.        VGAXXX: ET4000: Initial hibit state: low
  213.  
  214.  
  215. is printed, put the following in the SVGA, VGA16 and VGA2 sections of your
  216. XF86Config:
  217.  
  218.        Option "hibit_low"
  219.  
  220.  
  221. If the line:
  222.  
  223.        VGAXXX: ET4000: Initial hibit state: high
  224.  
  225.  
  226. is printed, put the following in the SVGA, VGA16 and VGA2 sections of your
  227. XF86Config:
  228.  
  229.        Option "hibit_high"
  230.  
  231.  
  232. 5.  Basic configuration
  233.  
  234. It is recommended that you generate an XF86Config file using the XF86Setup' or
  235. xf86config' program, which should produce a working high-resolution 8bpp con-
  236. figuration. You may want to include mode timings in the Monitor section that
  237. better fit your monitor (e.g 1152x864 modes). The driver options are described
  238. in detail in the next section; here the basic options are hinted at.
  239.  
  240. If graphics redrawing goes wrong on accelerated chips (ET4000W32p and ET6000),
  241. first try the "noaccel"; option, which disables all accelerated functions.
  242.  
  243.  
  244. 6.  general options in the XF86Config file
  245.  
  246. The following options are of particular interest to the Tseng driver. Each of
  247. them must be specified in the svga' driver section of the XF86Config file,
  248. within the Screen subsections of the depths to which they are applicable (you
  249. can enable options for all depths by specifying them in the Device section).
  250.  
  251.       Option "noaccel"
  252.         (ET4000W32p, et6000) This option will disable the use of any accel-
  253.         erated functions. This is likely to help with some problems related
  254.         to DRAM timing, high dot clocks, and bugs in accelerated functions,
  255.         at the cost of performance (which will still be reasonable on a
  256.         local or PCI bus).    This option applies only to those chips where
  257.         acceleration is supported (currently ET4000W32p and ET6000).
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  Information for Tseng Chipset Users
  269.  
  270.  
  271.  
  272.       Option "fast_dram" "slow_dram"
  273.         These options set the DRAM speed of certain cards where it applies.
  274.  
  275.         The "slow_dram" option is always enabled on ET4000, and ET4000W32.
  276.         If enabled, it slows down DRAM timing, which may avoid some memory-
  277.         related problems. If your card starts up with a black screen (and
  278.         possibly a system hang), this option might be needed.  Not sup-
  279.         ported on ET6000.
  280.  
  281.         The "fast_dram" option will cause the driver to speed up DRAM tim-
  282.         ings, which may also avoid screen-related problems (streaking,
  283.         stripes, garbage, ...). It may also increase those very same
  284.         effects. Not supported on ET6000.
  285.  
  286.       videoram 1024 (or another value)     (all chips)
  287.         This option will override the detected amount of video memory, and
  288.         pretend the given amount of memory is present on the card. This is
  289.         useful on cards with 2Mbyte of memory whose DRAM configuration is
  290.         not compatible with the way the driver enables the upper megabyte
  291.         of memory, or if the memory detection goes wrong. It must be speci-
  292.         fied in the Device section.
  293.  
  294.       Clockchip "et6000"  (et6000)
  295.         This enables programmable clocks, but obviously only on the et6000.
  296.         It must be specified in the Device section. Normally the server
  297.         will automatically use this feature when it detects an ET6000. Use
  298.         it only when you suspect auto-detection is not working. Note that
  299.         some frequencies may be unstable (resulting in a `Wavy' screen).
  300.         Only tried and tested frequencies (like the default clocks) are
  301.         guaranteed to be stable. If this happens, try a slightly different
  302.         frequency in the modeline (like 0.5 MHz more or less). The monitor
  303.         should still be capable of syncing to this frequency, but the
  304.         clockchip may already be outside an unstable region.
  305.  
  306.       Option "linear"  (ET4000W32i, ET4000W32p, ET6000)
  307.         This enables linear addressing, which is the mapping of the entire
  308.         framebuffer to a high address beyond system memory, making the full
  309.         length of the framebuffer directly accessible. In this way, slow
  310.         SVGA bank switching (where only a small fraction of the framebuffer
  311.         is visible at one time) is not necessary. It enhances performance
  312.         at 256 colors, and is currently required for 16bpp, 24bpp, and
  313.         32bpp.
  314.  
  315.       MemBase 0xE0000000. (or a different address) (ET4000W32, ET6000)
  316.         This sets the physical memory base address of the linear frame-
  317.         buffer. It must be specified in the Device section. It may be
  318.         required for non-PCI linear addressing configurations, and might be
  319.         useful for PCI-based systems where auto-detection fails. However,
  320.         almost all PCI systems will not need this.
  321.  
  322.         Read the section on linear memory base address issues below!
  323.  
  324.         Read the section on linear memory base address issues below!  (Mes-
  325.         sage repeated on purpose)
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  Information for Tseng Chipset Users
  335.  
  336.  
  337.  
  338.         Use this option ONLY if you have trouble with the default MemBase
  339.         used by the server, or if the server explicitly states that you
  340.         must provide one.
  341.  
  342.       Option "pci_retry" (ET4000W32p on PCI bus, ET6000)
  343.         This enables the PCI bus retry function, which is a performance
  344.         enhancing mode for PCI bus-based systems, where the VGA controller
  345.         will put the PCI bus in a hold state (sort of like wait-states)
  346.         when the server tries to start a new accelerated operation but the
  347.         accelerator is still busy with the previous operation.
  348.  
  349.         This is the fastest way to drive a VGA card (no busy-waiting loops
  350.         needed), but it also stresses some hardware that is timing-depen-
  351.         dent (tape drives, sound cards, etc). See also the trouble shooting
  352.         section.
  353.  
  354.  
  355. 7.  linear memory base address (MemBase) issues
  356.  
  357. First a WARNING: defining a bad MemBase may cause serious injury or death (to
  358. your operating system, of course). Especially defining the MemBase to be inside
  359. the range of system memory is a ticket to hell.
  360.  
  361. Rule #1: first, let the server find a memory base by itself, without specifying
  362. it. Make sure you "sync" all files to disk and close all critical applications.
  363. Make sure nothing bad will happen to your filesystems if you have to jump for
  364. the power switch soon.
  365.  
  366. The most critical cards are the ET4000W32p rev a and rev b on VESA local bus
  367. (VLB). The server will autodetect a linear base address that doesn't work on
  368. all systems.
  369.  
  370. If the server gets it wrong, you may end up with a severe system crash (e.g.
  371. if it maps the video memory right on top of your system memory). If this hap-
  372. pens, RESET IMMEDIATELY. Do not try to shut down cleanly, because the X-server,
  373. thinking it writes to the VGA memory, will write to system memory instead, and
  374. you'll be writing corrupted data to disk. If you did a sync prior to starting
  375. the server, there will be no harm done (only a filesystem check which should
  376. end up clean). DO NOT attempt to redirect the server output to a file on the
  377. system you're testing on (that will write data after you synced).
  378.  
  379. These are worst-case scenarios, and it is very unlikely this will happen to
  380. you. The text above is to make sure you are properly prepared, so that nothing
  381. serious happens.
  382.  
  383. When the server can't find a working linear memory base, it's time to experi-
  384. ment. The rest of this section deals with that.
  385.  
  386. Choosing a suitable MemBase can be quite tricky. If you have no way of deter-
  387. mining the MemBase your card uses, trying to put it a few Mb above the system
  388. memory is a good first guess. E.g. if you have 16 Mb of RAM, defining MemBase
  389. 0x01000000 (=16M) or 0x01400000 (=20M) may work.
  390.  
  391. However, this may only work on non-PCI systems, as PCI systems mostly map all
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  Information for Tseng Chipset Users
  401.  
  402.  
  403.  
  404. hardware above the 2GB mark. But then again, on PCI systems the server is
  405. almost always able to detect the correct linear memory base address. The only
  406. exception are those systems with more than one PCI VGA card.
  407.  
  408. On most VESA local bus (VLB) boards, there is an additional problem with
  409. address decoding. Some motherboards only decode the first 32, 64 or 128 MB of
  410. address space (a good pointer is to check the amount of DRAM that can be
  411. installed on the board: it will at least decode as much address space as it
  412. supports DRAM).
  413.  
  414. On such boards, you MUST specify a MemBase inside that range, or the actual
  415. address may wrap back onto system memory. That is why the general guideline of
  416. putting the MemBase just above the system memory is a sound one: it stands most
  417. chance of actually being inside the decoded address range of the board. Unless
  418. your motherboard's entire memory space is filled with RAM.
  419.  
  420. If you don't know how much memory address space your motherboard decodes (and
  421. who does?), try using a "non-trivial" address, like 0x1FC00000, which has
  422. enough bits set to "1" to work on any motherboard, even if a few are not
  423. decoded. Keep in mind that using for example 0x10000000 may end up right on top
  424. of your system memory if the motherboard doesn't decode all upper address bits.
  425. You will only do that once.
  426.  
  427. Some other VLB boards can only map the linear framebuffer above the 1GB mark
  428. (0x80000000 and up), so you must use a MemBase that is higher or equal to
  429. 0x80000000.
  430.  
  431. Unfortunately, there is no easy way to tell what system you have (these details
  432. are mostly not in the motherboard manuals). Trial and error is the only road to
  433. success here. The server code will provide a default that works on most
  434. boards... but yours won't be one of those, of course.
  435.  
  436. There are some limits as to where the linear memory base may be put. On any
  437. ET4000W32, it must have a 4MB granularity (i.e. it can be put at 16M or at 20M,
  438. but not at 18M). On ET6000, it needs a 16M granularity (note: the ET6000 driver
  439. should be able to determine the linear memory base automatically, so you should
  440. never need to define MemBase in the first place).
  441.  
  442. On ET4000W32i, things are worse: the linear address base is hardwired on the
  443. card, and there is no reliable way to read it back from the card. You need to
  444. know the address in some way, and specify it. The current code does an intelli-
  445. gent guess at it, but this is no guarantee.
  446.  
  447. On ISA cards, things are much more simple: ISA only uses 24 address lines, and
  448. hence the linear memory MUST lie within the 16 MB boundary. Together with the
  449. 4MB granularity of the linear memory base address on ET4000 cards, this means
  450. that you cannot have more than 12 MB of system memory in the machine if you
  451. want to use linear memory. Hence, the only realistic MemBase for ISA cards is
  452. 0x00C00000. This is also what the server will automatically choose if it
  453. detects an ISA W32 card.
  454.  
  455. WARNING: you must not have over 12 MB of system memory in this case. Or if you
  456. have it, you must disable access to all memory above the 12 MB mark.  Some
  457. operating systems allow you to specify at startup how much memory it is allowed
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  Information for Tseng Chipset Users
  467.  
  468.  
  469.  
  470. to use, so you don't have to unplug some memory each time you want to use lin-
  471. ear memory.
  472.  
  473.  
  474. 8.  Mode issues
  475.  
  476. The accelerated driver on ET4000W32p and ET6000 uses 1K bytes of scratch space
  477. in video memory. Consequently, a 1024x1024 virtual resolution should not be
  478. used with a 1Mbyte card.
  479.  
  480. The use of a higher dot clock frequencies has a negative effect on the perfor-
  481. mance of graphics operations on non-et6000 cards (the effect is much less, or
  482. even non-existing, on ET6000 cards), especially BitBlt, when little video mem-
  483. ory bandwidth is left for drawing. Memory bandwidth is the speed at which data
  484. can be pumped into the memory while the RAMDAC is pulling it out to display it
  485. on the screen.
  486.  
  487. Higher dot-clocks (mostly related to higher resolutions) consume more band-
  488. width, so that less of it is left for drawing into the framebuffer. With a
  489. working accelerator, things become increasingly crammed, because modern accel-
  490. erators can consume huge amounts of bandwidth (but they also give you high
  491. speeds in return). High color depths also need extra bandwidth.
  492.  
  493. If you are short on memory bandwidth (see the separate section on this) and
  494. experience blitting slowness or screen "glitches", try using the lowest dot
  495. clock that is acceptable; for example, on a 14" or 15" screen 800x600 with high
  496. refresh (50 MHz dot clock) is not so bad, with a large virtual screen.
  497.  
  498. Tseng chips are mostly known for their (very) good memory bandwidth, so you
  499. should only start to see problems in the higher regions.
  500.  
  501. It does not make much sense performance-wise to use the highest clock (85 MHz)
  502. for 1024x768 at 76 Hz on a 1 MB ET4000W32; the card will very slow, because
  503. there is almost no bandwidth left for drawing. A 75 MHz dot clock results in 70
  504. Hz which should be acceptable. If you have a monitor that supports 1024x768 at
  505. 76 Hz with a 85 MHz dot clock, an 1MB card is a poor match anyway.
  506.  
  507. The ET4000W32i and ET4000W32p have a special feature that almost doubles memory
  508. bandwidth (+70%) using "interleaving" between the two banks. Upgrading to 2MB
  509. is a real bonus on these cards.
  510.  
  511. ET6000-based cards however use MDRAM (multi-bank DRAM), which is much faster
  512. than DRAM. Some 4 MB systems, with 4 MDRAM chips will also do interleaving,
  513. which should give virtually unlimited memory bandwidth: theoretically >1GB/sec,
  514. comparing to the already neat 90MB/sec on a 1MB ET4000W32i/p card). Most 4MB
  515. models have only 2 MDRAM chips (as do the 2MB models). So far for the marketing
  516. hype: a real ET6000 card is limited to somewhere around 225 MB/sec.
  517.  
  518.  
  519. 9.  Acceleration issues
  520.  
  521. The XFree Acceleration Architecture makes extensive use of the unused video
  522. memory on the VGA card. If there is not enough free video memory, some acceler-
  523. ation features will be disabled or crippled, resulting in less performance.
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  Information for Tseng Chipset Users
  533.  
  534.  
  535.  
  536. To avoid this from happening, try to keep an absolute minimum of 16 kb of free
  537. memory, in addition to the 1kb already reserved by the accelerator.
  538.  
  539. In practice, this small amount of memory should not be a problem. Most cards
  540. nowadays have 2 MB of video memory, and running 1280x1024 still leaves plenty
  541. of memory unused. Even a 1600x1200 desktop will leave over 170kb unused, which
  542. will then be used by the accelerator to enhance performance.
  543.  
  544. Most 1MB cards cannot display modes larger than 1024x768 with a decent refresh
  545. rate, leaving 256kb unused.
  546.  
  547.  
  548. 10.  ET6000 memory size facts and fiction
  549.  
  550. The ET6000 uses a special kind of video memory called MDRAM (multi-bank DRAM).
  551. It may have a non-power-of-two amount of MDRAM: 2.25 or even 4.50 MB.  Espe-
  552. cially 2.25 MB MDRAM is popular, since this can support 1024x768 at 24bpp with-
  553. out needing 4MB of RAM.
  554.  
  555. There are a few less intuitive problems with this.
  556.  
  557. First of all, All memory above the 4 MB limit is a waste of money, because the
  558. ET6000 cannot use this memory for anything at all. There are boards with 4.5 MB
  559. around, but that extra 0.5 MB is a waste. The ET6000 can only refresh 4 MB of
  560. (M)DRAM (refresh register). It can only access 64 banks of 64KB in VGA mode
  561. (bank select register). All accelerated commands use a 22-bit address (=4MB)
  562. inside the video memory. You get the idea...
  563.  
  564. And Secondly (more importantly): you may not have 2.25 MB at all! There have
  565. been several reports about ET6000 cards that were sold with (supposedly) 2.25
  566. MB of MDRAM, but which turned out to be standard 2MB MDRAM cards.  People have
  567. been having trouble with these all along, since sometimes the X-server used to
  568. detect this as 2.25 MB (or even 2.5 MB) due to internal chip design and also
  569. due to faulty BIOSs. This memory detection problem has been fixed now, and the
  570. server should detect the correct amount of memory.
  571.  
  572. Do NOT define the amount of memory in the XF86Config yourself, unless you are
  573. absolutely sure about the amount. There is a simple way to determine the amount
  574. of MDRAM on your card beyond doubt.
  575.  
  576. Look at the video card. There is one large chip with 204 pins on it, which is
  577. the ET6000. One socketed rectangular chip, mostly with a sticker on it,is the
  578. BIOS. The remaining chips are (mostly) 2 or 4 other large square chips on it
  579. with the following markings:
  580.  
  581. MDRAM MD9xy    ("xy" is a two-digit number) SJ-5-100  (this may differ, but it
  582. will have the same layout)
  583.  
  584. and a nice logo next to all that with 4 diamonds and the name "MoSys" under-
  585. neath.
  586.  
  587. The "xy" number tells you how much MEGABITS are in that one chip.
  588.  
  589. The amount of RAM on the card is then:
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  Information for Tseng Chipset Users
  599.  
  600.  
  601.  
  602. ("xy" * number_of_MDRAM_chips) / 8    Mbytes
  603.  
  604. On my board, there are two MD908 chips, which means I have
  605.  
  606. (08 * 2) / 8 = 2 MB of MDRAM.
  607.  
  608. Boards with two MD909 chips have 2.25 MB, etc.
  609.  
  610. Current MDRAM chips are MD904, MD906, MD908, MD909, MD910, MD916, MD918 and
  611. MD920.
  612.  
  613.  
  614. 11.  ET6000 memory bandwidth hype and the impact on video modes
  615.  
  616. Tseng has always had wet dreams about memory bandwidth, and their press
  617. announcements about the ET6000 memory bandwidth are no exception.
  618.  
  619. They claim the ET6000 using MDRAM is capable of reaching an incredible 1.2
  620. Gbytes/sec of bandwidth. That would surpass just about everything on the market
  621. (even SGI).
  622.  
  623. And that would be true, _if_ they actually used the fastest available MDRAMs on
  624. their boards, which they don't. The stunning 1.2 GByte mark is only reached
  625. when using 4 MDRAM chips at their max clock rate of 166 MHz. But due to design
  626. limitations, the first-generation ET6000 can only drive the memories at 92 MHz
  627. (that will change when the ET6300 hits the streets).
  628.  
  629. This means the max. theoretical bandwidth available on current ET6000 boards is
  630. "only" 360 MB/sec on boards with 2 MDRAM chips, and 720 MB/sec on boards with 4
  631. MDRAM chips. And this assumes a best-case situation (=extremely long bursts --
  632. the MDRAMs use a shared address/data bus, much like the PCI bus does). In the
  633. real world, unaligned accesses both from the PCI bus and the accelerator will
  634. reduce the effective available bandwidth. The current ET6000 boards peak out at
  635. about 225 MB/sec, with 2 or 4 MDRAMs.
  636.  
  637. Memory bandwidth limits the maximum resolution you can use at a given color
  638. depth. The ET6000 RAMDAC can cope with 135 MHz in any situation. But the RAM
  639. cannot. At 32bpp (sparse 16M color mode), using a 135 MHz pixel clock would
  640. require a memory bandwidth of 135*4 = 540 MB/sec, which the current ET6000
  641. boards simply cannot cope with. And then you still need some spare bandwidth
  642. for the PCI bus and the accelerator.
  643.  
  644. That is why some modes will be refused, depending on your MDRAM memory layout,
  645. even if the amount of memory would permit such a mode. See also the trouble
  646. shooting section to see what can happen if too little memory bandwidth is
  647. available.
  648.  
  649.  
  650. 12.  Linear addressing and 16bpp/24bpp/32bpp modes
  651.  
  652. Currently the 16-bit (32768 or 65536 colors), 24-bit (16M colors, packed
  653. pixel), and 32-bit (16M colors, sparse) pixel support in the SVGA server
  654. requires linear addressing. (This restriction may be removed in a future ver-
  655. sion, but with nearly all new cards using the PCI bus (where linear addressing
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  Information for Tseng Chipset Users
  665.  
  666.  
  667.  
  668. poses no problem), removing the linear addressing requirement presently has a
  669. lower priority than other features.) Option "linear" can be specified in a
  670. depth-specific screen section to enable linear addressing; a MemBase setting
  671. (in the device section) is probably also required on non-PCI based systems, and
  672. optionally on PCI systems that have trouble finding out for themselves where
  673. the MemBase is.
  674.  
  675. Non-PCI cards are not (or not well) supported in linear memory mode at this
  676. moment. Some of them don't support it at all, and some of the ones that do have
  677. so many address decoding bugs that it isn't feasible to provide a working solu-
  678. tion.
  679.  
  680. For the most part, many of the accelerated features in the 8bpp server have
  681. been implemented to support 16, 24, and 32 bpp modes for the W32p and the
  682. ET6000. So although there are now up to 4 times as many bits to display, the X
  683. server shouldn't feel overly sluggish. Note also that the 24bpp and 32bpp modes
  684. are only supported on a limited set of cards, and with at least 2Mb of memory.
  685.  
  686. An ET6000 with 2.25 MB MDRAM is cheap-and-sound, since it can support exactly
  687. 1024x768 at 24bpp (using all available video memory). On all other video cards,
  688. you need at least 4MB of video memory to do this. With only 2MB of (M)DRAM,
  689. 960x720 is the best you can hope for.
  690.  
  691. In the XF86Config "Screen" section, a "Display" subsection must be defined for
  692. each depth that you want to run, with separate Modes and virtual screen size.
  693. Example (2Mb of video memory):
  694.  
  695.      Section "screen"
  696.      SubSection "Display"
  697.          Depth 8
  698.          Virtual 1280 1024
  699.          ViewPort 0 0
  700.          Modes "640x480" "800x600" "1024x768"
  701.      EndSubSection
  702.      SubSection "Display"
  703.          Depth 16
  704.          Virtual 1024 992
  705.          ViewPort 0 0
  706.          Modes "640x480" "800x600" "1024x768"
  707.      EndSubSection
  708.      SubSection "Display"
  709.          Depth 24
  710.          Virtual 960 720
  711.          ViewPort 0 0
  712.          Modes "640x480" "800x600"
  713.      EndSubSection
  714.      SubSection "Display"
  715.          Depth 32
  716.          Virtual 832 600
  717.          ViewPort 0 0
  718.          Modes "640x480" "800x600"
  719.      EndSubSection
  720.      EndSection
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  Information for Tseng Chipset Users
  731.  
  732.  
  733.  
  734. 13.  Trouble shooting with the SVGA Tseng driver
  735.  
  736. First of all, make sure that the default modes selected from your XF86Config
  737. are supported by your monitor, i.e. make sure the horizontal sync limit is cor-
  738. rect. It is best to start with standard 640x480x256 with a 25.175 MHz clock (by
  739. specifying a single horizontal sync of 31.5) to make sure the driver works on
  740. your configuration. The default mode used will always be the first mode listed
  741. in the modes line, with the highest dot clock listed for that resolution in the
  742. timing section.
  743.  
  744. Note that some VESA standard mode timings may give problems on some monitors
  745. (try increasing the horizontal sync pulse, i.e. the difference between the mid-
  746. dle two horizontal timing values, or try multiples of 16 or 32 for all of the
  747. horizontal timing parameters).
  748.  
  749.       There is a video signal, but the screen doesn't sync.
  750.         You are using a mode that your monitor cannot handle. If it is a
  751.         non-standard mode, maybe you need to tweak the timings a bit. If it
  752.         is a standard mode and frequency that your monitor should be able
  753.         to handle, try to find different timings for a similar mode and
  754.         frequency combination.
  755.  
  756.       Horizontal jitter at high dot clocks.
  757.         This problem shows up especially when drawing operations such as
  758.         scrolling or blitting are in progress. There is currently no easy
  759.         fix for this, You can try the "fast_dram" option, or use a lower
  760.         dot clock. If that is not sufficient, the "noaccel" option will
  761.         almost always help (it leaves more bandwidth for the RAMDAC). In
  762.         most cases, this is caused by the video memory not being able to
  763.         provide pixel data to the RAMDAC fast enough, so it gets fed with
  764.         garbage.
  765.  
  766.       `Wavy' screen.
  767.         Horizontal waving or jittering of the whole screen, continuously
  768.         (independent from drawing operations). You are probably using a dot
  769.         clock that is too high; it is also possible that there is interfer-
  770.         ence with a close MCLK. Try a lower dot clock (sometimes even drop-
  771.         ping it by 0.5 MHz may work). You can also try to tweak the mode
  772.         timings; try increasing the second horizontal value somewhat.
  773.         Here's a 65 MHz dot clock 1024x768 mode (about 60 Hz) that might
  774.         help:
  775.  
  776.           "1024x768"     65     1024 1116 1228 1328     768  783  789    818
  777.  
  778.       Crash or hang after start-up (probably with a black screen).
  779.         Try the "noaccel" option. Check that the BIOS settings are OK; in
  780.         particular, disable caching of 0xa0000-0xaffff. Disabling hidden
  781.         DRAM refresh may also help.
  782.  
  783.       Crash, hang, or trash on the screen after a graphics operation.
  784.         This may be related to a bug in one of the accelerated functions,
  785.         or a problem with the BitBLT engine. Try the "noaccel" option.
  786.         Also check the BIOS settings.
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  Information for Tseng Chipset Users
  797.  
  798.  
  799.  
  800.       `ACL: TIMEOUT' messages from the server.
  801.         Same as for the above entry. However, on some systems, the problem
  802.         will not go away no matter what you do. It may be related to the
  803.         operating system you use (it has only been seen on Linux systems,
  804.         and even then it depends on the kernel versions). Sometimes, choos-
  805.         ing another MemBase may help.
  806.  
  807.       Occasional erroneous pixels in text, pixel dust when moving window-frame
  808.         Probably related to MCLK setting that is too high (can happen with
  809.         linear addressing even though banked mode runs OK). Most (if not
  810.         all) ET6000 cards are sold with the MCLK slightly over clocked for
  811.         performance (the current norm is 90 or 92 MHz), which may cause
  812.         these problems. There is currently no fix for this. If the pixel
  813.         dust is only temporary (it disappears as soon as nothing moves on
  814.         the screen anymore), then memory bandwidth is probably the cause.
  815.         The only solution is to disable acceleration, or, if that doesn't
  816.         help, using a lower pixel clock.
  817.  
  818.       Textmode is not properly restored
  819.         This has been reported on some configurations. Sometimes a Chipset
  820.         line will fix this. Normally you should be able to restore the
  821.         textmode font using a utility that sets it (setfont, runx, restore-
  822.         font on Linux).
  823.  
  824.       Mostly black or blue screen when using accelerated driver features
  825.         If you are seeing a mostly black or blue screen, with only a few
  826.         icons (pixmaps) displayed, this section applies to you.
  827.  
  828.         There can be several causes for this.
  829.  
  830.         One is if the amount of memory is not detected (or specified) cor-
  831.         rectly. If the server's autodetection mechanism detects too much
  832.         memory, accelerated features will not work. Define the amount of
  833.         memory in the XF86Config file. This seems to happen sometimes on
  834.         some 2.25 MB ET6000 cards, where the server detects 2.5 MB instead
  835.         (add videoram "2304" in this particular case).
  836.  
  837.         If that doesn't help, disabling acceleration (option "noaccel") is
  838.         the only solution.
  839.  
  840.       Problems with DMA hardware (floppy, tape)
  841.         On some systems, the accelerated server will interfere with other
  842.         hardware that uses ISA DMA. Most notably is the PC floppy con-
  843.         troller and sound cards. The floppy interface cannot cope with
  844.         inordinately long bus-holds, which may occur during large acceler-
  845.         ated operations.  The Linux-ftape module for example (a floppy-tape
  846.         driver) will generate lots of "write error" messages when running a
  847.         backup or restore operation while the X-server is in use. These
  848.         errors should not be fatal, but that all depends on how well the
  849.         operating system handles these conditions. Linux seems to cope.
  850.  
  851.         There are two possible solutions: disable acceleration using the
  852.         "noaccel" option, or disable PCI-retry (which is causing the large
  853.         bus delays) by removing the "pci_retry" option.  This will cause a
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  Information for Tseng Chipset Users
  863.  
  864.  
  865.  
  866.         very small slowdown of accelerated operations.
  867.  
  868.         The "pci_retry" option applies not only to the PCI bus systems, but
  869.         has a similar effect on other busses.
  870.  
  871.       "Cannot read colourmap from VGA.    Will restore with default"
  872.         If this error occurs, the server was unable to properly initialize
  873.         the RAMDAC, and tries to restore a default color map. On some
  874.         unsupported RAMDACs, this will have the adverse effect of removing
  875.         all color altogether, leaving you with a bunch of weird colors, or
  876.         with a completely black screen. If that happens, add the ramdac
  877.         "normal" statement to the Device section in your XF86Config file.
  878.         In most cases, this will solve the color problem.
  879.  
  880. For other screen drawing related problems, try the "noaccel" option.
  881.  
  882. As a final fallback, consider trying the separate accelerated W32 server. It is
  883. more mature, and has been tested more extensively as a result. See README.W32.
  884.  
  885. If you are having driver-related problems that are not addressed by this docu-
  886. ment, or if you have found bugs in accelerated functions, you can try contact-
  887. ing the XFree86 team.
  888.  
  889. In fact, reports (success or failure) are very welcome, especially on configu-
  890. rations that have not been tested. You can do this via the BetaReport form
  891. (mail it to report@XFree86.org). You may want to keep an eye on forthcoming
  892. beta releases at www.xfree86.org.
  893.  
  894.      Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/tseng.sgml,v 3.15.2.11 1997/08/02 13:48:15 dawes Exp $
  895.  
  896.  
  897.  
  898.  
  899.  
  900.      $XConsortium: tseng.sgml /main/6 1996/10/27 11:06:09 kaleb $
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  Information for Tseng Chipset Users
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.                    CONTENTS
  999.  
  1000.  
  1001.  
  1002. 1.  Supported chipsets    ..................................................... 1
  1003.  
  1004. 2.  ET4000 driver features  ................................................. 1
  1005.  
  1006. 3.  ET6000 driver features  ................................................. 2
  1007.  
  1008. 4.  Clock selection problems with some ET4000 boards  ....................... 3
  1009.  
  1010. 5.  Basic configuration  .................................................... 4
  1011.  
  1012. 6.  general options in the XF86Config file  ................................. 4
  1013.  
  1014. 7.  linear memory base address (MemBase) issues  ............................ 6
  1015.  
  1016. 8.  Mode issues  ............................................................ 8
  1017.  
  1018. 9.  Acceleration issues  .................................................... 8
  1019.  
  1020. 10. ET6000 memory size facts and fiction  ................................... 9
  1021.  
  1022. 11. ET6000 memory bandwidth hype and the impact on video modes    ............ 10
  1023.  
  1024. 12. Linear addressing and 16bpp/24bpp/32bpp modes  ......................... 10
  1025.  
  1026. 13. Trouble shooting with the SVGA Tseng driver ............................ 12
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                        i
  1055.  
  1056.  
  1057.